출력 특성 맵의 크기를 조절하기 위한 입력에 패딩처리
패딩에서 보통은 유한한 크기의 출력 벡터를 얻기 위해서 합성곱에 제로패딩을 사용했지만,
기술적으로 p>=0인 어떤 패딩도 적용 가능하다.
p값에 따라 x에서 경계에 있는 셀은 중간 셀과 다르게 처리된다.
n=5, m=3, p=0인 경우
x[0]은 하나의 출력 원소를 계산하는데 사용된다.(y[0])
x[1]은 두개의 출력 원소를 계산하는데 사용된다.(y[0], y[1])
x[2]는 대부분의 계산에서 사용되기 때문에 강조되는 효과를 낸다.
p=2 패딩을 사용하면 문제를 해결할 수 있다.
x의 각 원소가 세 개의 y 원소 계산에 참여한다.(스트라이드가 1일 때)
풀(full) 패딩 & 세임(same) 패딩 & 밸리드(valid) 패딩
- 풀 패딩은 패딩 파라미터 p를 p=m-1로 설정한다. 풀 패딩은 출력 크기를 증가시기기 때문에 합성곱 신경망에서 거의 사용되지 않는다.
풀 패딩 사용시 모든 x의 파라미터가 동일하게 사용된다.
- 세임 패딩은 출력의 크기가 입력 벡터 x와 같아야 할 때 사용한다. 패딩 파라미터 p는 입력과 출력 크기가 동일해야 하기 때문에 필터 크기에 따라 결정
- 밸리드 패딩 합성곱은 p=0인 경우를 말한다.(패딩이 없음)
세임 패딩이 합성곱 신경망에서 가장 많이 사용된다. 다른 패딩에 비해 벡터의 크기를 유지시킨다.
컴퓨터 비전 분야의 이미지 관련되 작업에서 입력 이미지의 높이와 너비가 유지된다.
따라서 세임 패딩이 네트워크 구조를 설계하기 쉽다.
밸리드 패딩은 신경망에 층이 추가될수록 점진적으로 텐서의 크기가 줄어든다.
이는 신경망의 성능을 나쁘게 만든다.
풀 패딩은 입력보다 출력 크기를 증가시킨다.
경계부분에서 영향을 최소화하는 것이 중요한 신호 처리 애플리케이션에서 보통 사용된다.
실전에서는 세임 패딩으로 너비와 높이를 유지시키고 풀링에서 크기를 감소시킨다.
Subsampling
서브샘플링은 전형적인 두 종류의 풀링 연산으로 합성곱 신경망에 적용된다.
풀링층은 P_n1xn2로 표시한다.
n1xn2는 최대값과 평균 연산이 수행되는 이웃한 픽셀의 크기를 의미한다.(각 차원별로 인접 픽셀 개수)
이런 이웃 픽셀 개수를 풀링 크기라고 한다.
최대 풀링(max-pooling)평균 풀링(mean-pooling, average pooling)
풀링(최대 풀링)은 지역 불변성을 만든다.
국부적인 작은 변화가 최대 풀링의 결과를 바꾸지 못한다.
이는 입력 데이터에 있는 작은 잡음에 좀더 안정적인 특성을 생성한다.
풀링은 특성의 크기를 줄이므로 계산 효율성을 높인다.
또한 특성 개수가 줄어들면 과대적합도 줄어든다.
겹치는 풀링 & 겹치치 않는 풀링전통적으로 풀링은 겹치지 않는다고 가정한다.(스트라이드 크기=풀링 크기)
스트라이드가 풀링 크기보다 작으면 겹쳐서 풀링이 일어난다.
합성곱 네트워크에서 겹침 풀링이 사용되는 경우도 있기는 하지만 대부분 겹치지 않음
풀링은 CNN 구조의 핵심 요소이지만, 몇몇 CNN은 폴링을 사용하지 않고
스트라이드가 2인 합성곱 층을 이용해서 특성 맵의 크기를 줄인다.